/**
 * Setvor project
 */
package setvor.lang.machine;

import java.util.Set;

import setvor.lang.*;

/**
 * @author julatec
 *
 */
public abstract class DeterministicFiniteAutomaton<Q extends State<Q>, S> extends 
	NonDeterministicFiniteAutomaton<Q, S>{

	/**
	 * @param states
	 * @param initial
	 */
	protected DeterministicFiniteAutomaton(Set<Q> states, Q initial) {
		super(states, new OneElementSet<Q>(initial));
	}
	
	public final Set<Q> emptyTransition(Q state){
		return this.getEmptySet();
	}
	
	public final boolean acceptEmptyString(){
		return false;
	}
	
	public final boolean isDeterministic(){
		return true;
	}

}
